package wdevent

import (
	"errors"
	"fmt"
	"runtime/debug"
)

//全局错误恢复，最好在第一个全局事件中注册这个函数
func Recover(ctx *Context) (err error) {
	defer func() {
		if e := recover(); e != nil {
			fmt.Println(string(debug.Stack()))
			err = errors.New(fmt.Sprintf("recover panic:%v", e))
		}
	}()
	err = ctx.Next()
	return
}
